-- CALC_ACTIVITY_AUDIENCE_DBASE

-- 计算活动观众初始生命（大黄蜂，铁皮）
-- @param user         玩家
-- @param monster      怪物
-- @param args         参数
return function(user, monster, args)
    local dungeonId = DungeonM.getDungeonId();
    local hpRange = args[dungeonId];
    if type(hpRange) ~= "table" then
        return {};
    end

    -- 剔除掉已经抽取过的血量
    local finalRange = {};
    local alreadyFetch = user.dbase:queryTemp("init_activity_audience", {});
    if #alreadyFetch > 0 then
        for _, hp in pairs(hpRange) do
            if table.indexOf(alreadyFetch, hp) < 0 then
                table.insert(finalRange, hp);
            end
        end
        hpRange = finalRange;
    end

    local seed = DungeonM.getRandSeed("init_activity_audience");
    local index = seed % #hpRange + 1;
    local initHp = hpRange[index];
    if #alreadyFetch <= 0 then
        -- 记录已经抽取的
        table.insert(alreadyFetch, initHp);
        user.dbase:setTemp("init_activity_audience", alreadyFetch);
    else
        -- 由于只有两个怪物，已经使用了，直接删掉
        user.dbase:deleteTemp("init_activity_audience");
    end

    -- 修正血量
    return {["hp"] = initHp, ["max_hp"] = initHp};
end